from typing import List, Optional
import numpy as np

class QuantileSummaryStream:
    def __init__(self, epsilon: Optional[float] = None): ...
    def __getstate__(self) -> bytes: ...
    def __setstate__(self, state: bytes) -> None: ...
    def insert_array(self, data: np.ndarray) -> None: ...
    def queries(self, phi: List[float]) -> List[float]: ...
    def merge(self, other: "QuantileSummaryStream") -> "QuantileSummaryStream": ...

def summary_f64_ix2(data: np.ndarray, epsilon: float) -> List[QuantileSummaryStream]: ...
def quantile_f64_ix1(data: np.ndarray, q: List[float], epsilon: float) -> List[float]: ...
def quantile_f64_ix2(data: np.ndarray, q: List[float], epsilon: float) -> np.ndarray: ...
